Relatório Git Github e Python
Relatório para a disciplina de softwares estatísticos
Introdução:
Aprender ferramentas que facilitam e automatizam nosso trabalho é sempre importante, durante as aulas foi apresentado para nós uma das principais ferramentas de organização e versionamento dos programadores, o Git e o Github (sistema nuvem do Git), essa ferramenta é de suma importância e é uma ferramenta que se deve levar em toda a jornada acadêmica e profissional de um estatístico que está sempre mexendo com programação. O git e github será utilizados também ao decorrer da cadeira durando os ensinamentos de Python. Vamos ver alguns pontos chave dessa ferramenta e um conteudo inicial de python
Git e GitHub:
Uma breve história do Git:
Em meados de (1991-2002) surgia a necessidade de um processo de colaboração mais eficiente ao invés do processo artesanal de correções em arquivos. Dessa necessidade surgiu o BitKeeper, um sistema de controle de versão distribuído, porém, essa solução mais tarde viria a se tornar um problema, em 2005 a BitKeeper rompeu com a Linux deixando a ferramenta disponível apenas no modelo pago, Linus Torvald e seus colaboradores incontentes com a situação se viram determinados a contruir algo novo para substituir o BitKeeper e superar o mesmo, esse algo seria o Git. Mais tarde o que começou como uma resposta imediata a ruptura da BitKeep se tornou uma ferramente dominante de controle de versão.
Uma breve história do Github:
O GitHub nasceu em 2008, criado por Tom Preston-Werner, Chris Wanstrath e PJ Hyett, três desenvolvedores que queriam tornar o Git mais acessível e colaborativo.
Eles perceberam que, embora o Git fosse poderoso, faltava uma plataforma intuitiva para:
Hospedar repositórios
Facilitar colaboração em equipe
Popularizar o controle de versão
Curiosidades:
Em 2010, já tinha 1 milhão de repositórios.
Em 2012, o Facebook e o Google adotaram o GitHub.
Em 2018, a Microsoft comprou o GitHub por US$ 7,5 bilhões – mas manteve-o aberto e independente.
O que são:
Git:
O Git é um sistema de controle de versão distribuído projetado para rastrear mudanças em arquivos e organizar o trabalho entre várias pessoas.
Ao contrário de outros sistemas de versionamento (como Subversion ou CVS), que armazenam arquivos como uma lista de alterações (deltas), o Git trata os dados como um conjunto de snapshots (fotos do estado dos arquivos em um determinado momento). Cada vez que você faz um commit, o Git tira uma “foto” dos arquivos e armazena uma referência a esse estado.
A maioria das operações no Git são feitas localmente, sem precisar de internet. Você pode ver o histórico, criar branches, fazer commits e reverter alterações sem depender de um servidor remoto.
Tudo no Git é verificado por um checksum (hash SHA-1) antes de ser armazenado. Isso significa que é impossível alterar um arquivo ou histórico sem que o Git detecte. Cada arquivo e commit é identificado por um código único de 40 caracteres (ex: 24b9da655...).
Github:
O GitHub é uma plataforma baseada em nuvem em que é possível armazenar, compartilhar e trabalhar com outras pessoas para escrever códigos.
Ao armazenar códigos em um “repositório” no GitHub é possível:
Demonstrar ou compartilhar seu trabalho.
Acompanhar e gerenciar alterações no código ao longo do tempo.
Permitir que outras pessoas revisem o seu código e deem sugestões para melhorá-lo.
Colaborar em um projeto compartilhado sem se preocupar que suas alterações afetarão o trabalho de seus colaboradores antes que você esteja pronto para integrá-los.
O trabalho colaborativo, uma das características fundamentais do GitHub, é possível graças ao software de código aberto Git, que serviu como base para a criação do GitHub.
Para que servem:
Como mencionado anteriormente, o Git e o GitHub servem como ferramentas complementares para controle de versão e colaboração em projetos. Enquanto o Git atua como sistema de versionamento local, rastreando alterações no código-fonte de maneira eficiente e segura, o GitHub funciona como plataforma de hospedagem em nuvem que potencializa os recursos do Git, adicionando funcionalidades colaborativas.
Dessa forma, Git e GitHub, quando utilizados em conjunto, proporcionam um ambiente robusto e eficiente para o gerenciamento de projetos de software, garantindo rastreabilidade, segurança e colaboração simplificada.
Comandos básicos:
git init- Esse é o comando incial, ele cria a pasta
.gitque tem todos os arquivos para criar um repositório dentro na pasta do projeto.
- Esse é o comando incial, ele cria a pasta
git addO
git addtem duas funções principais:Começa a rastrear arquivos novos (monitorar os arquivos).
Prepara as alterações de arquivos ja existentes, marca como “staged” (preparado).
git commit- Ele cria um registro permanente no histórico do Git, permitindo que você volte a essa versão quando quiser. É como tirar uma “foto” do seu projeto naquele momentos, guardando todas as alterações preparadas no
git add.
- Ele cria um registro permanente no histórico do Git, permitindo que você volte a essa versão quando quiser. É como tirar uma “foto” do seu projeto naquele momentos, guardando todas as alterações preparadas no
git push- O
git pushé o comando que envia seus commits locais para um repositório remoto (como GitHub).
- O
git pullO
git pullé o comando que sincroniza seu repositório local com as alterações mais recentes do repositório remoto (GitHub, GitLab, etc.). Ele combina duas operações:git fetch: Baixa as alterações do remoto.git merge: Integra essas alterações no seu branch local.
git cloneO
git cloneé o comando que cria uma cópia local de um repositório Git remoto (como do GitHub, GitLab ou Bitbucket). Ele é usado quando você quer:Trabalhar em um projeto existente (que está na nuvem).
Contribuir para um projeto open-source.
Iniciar um projeto baseado em um template.
Repositório, commit e brach:
Repositório:
Um repositório é o elemento mais básico do Git e do GitHub. É um lugar onde você pode armazenar seu código, seus arquivos e o histórico de revisão de cada arquivo. Contém snapshots (fotos instantâneas) de todos os arquivos em cada versão. Mantém um histórico completo de alterações (quem modificou, quando e o que mudou). Permite ramificação (branches) para desenvolvimento paralelo.
Local: Armazenado no seu computador (pasta
.git).Remoto: Hospedado em plataformas como GitHub. Os repositórios podem ter vários colaboradores e podem ser públicos ou particulares.
Commit:
Um commit registra alterações em um ou mais arquivos no seu branch, parecido com salvar um arquivo qualquer que foi editado. O Git atribui a cada commit um ID exclusivo, denominado SHA ou hash, que identifica:
Cada uma das alterações feitas;
O momento em que as alterações foram feitas;
O autor das alterações.
Ao fazer um commit, você deve colocar uma mensagem que descreva brevemente as alterações.
Branch:
É uma linha de desenvolvimento separada, que permite aos desenvolvedores trabalhar em diferentes partes do projeto sem interferir no código principal. É muito usado para fazer testes no aequivo principal ou quando tem vários colaboradores no projeto, assim cada um faz um branch diferente e depois juntam tudo no main. Por exemplo:
git branch menu-navegacao # Cria o branch
git checkout menu-navegacao # Entra neleMexendo nele:
git add .
git commit -m "Adiciona menu"Voltando para o branch principal (main):
git checkout main # Volta para o branch originalpip:
O pip é o instalador de pacotes padrão do Python. Ele serve para baixar, instalar e gerenciar bibliotecas que não vêm junto com o Python, mas que são muito úteis para desenvolver projetos.
Com o pip, conseguimos acessar milhares de pacotes disponíveis no repositório oficial do Python, o PyPI.
Como instalar pacotes com pip:
Para instalar uma biblioteca com o pip, usamos o seguinte comando no terminal ou prompt de comando:
pip install nome-do-pacotePor exemplo, para instalar o pacote pandas:
pip install pandasIsso faz com que o pip baixe e instale automaticamente a biblioteca em seu ambiente Python.
Como atualizar o próprio pip
O pip pode ser atualizado por ele mesmo com o seguinte comando:
python -m pip install --upgrade pipEsse comando usa o próprio Python para rodar o pip como módulo e garantir que ele seja atualizado para a versão mais recente.
Exemplos de bibliotecas populares
pandas
Usada para análise e manipulação de dados. Trabalha com estruturas como tabelas (DataFrames), séries temporais e arquivos CSV, Excel, entre outros.
Instalação:
pip install pandasnumpy
Fornece suporte a arrays, operações matemáticas e álgebra linear de forma rápida e eficiente. É a base para muitas bibliotecas científicas no Python.
Instalação:
pip install numpymatplotlib
Utilizada para criar gráficos e visualizações de dados. Permite gerar gráficos de linha, barra, dispersão, histogramas e mais.
Instalação:
pip install matplotlibrequests
Facilita a realização de requisições HTTP, como acessar APIs ou páginas da internet, de forma simples e eficiente.
Instalação:
pip install requestsConceitos iniciais de Python:
Tipos de dados: interger, float, string, boolean:
Um valor é uma das coisas básicas com as quais um programa trabalha, como uma letra ou um número. Esses valores pertencem a tipos diferentes: 2 é um número inteiro, 42.0 é um número de ponto flutuante e ‘Hello, World!’ é uma string (string é chamado assim pois são letras em uma sequência em cadeia).
Para ter certeza dos tipos que esses valores assumem podemos pedir para o própio python dizer qual tipo cada um pertence:
print(type(4))
> class 'int'
print(type(21.0))
> class 'float'
print(type('Hello, World!'))
> class 'str'
print(type(TRUE))
> class 'bool'E ao colocar valores como ‘4’ e ‘21.0’, eles parecem números mas vão ser tratados como string por estarem entre aspas:
print(type('4'))
> class 'str'
print(type('21.0'))
> class 'str'Sintetizando tudo vamos ter os seguinte tipos de valores:
| Tipo | Descrição | Exemplo |
|---|---|---|
int |
Números inteiros | 42, -7 |
float |
Números decimais | 3.14, -0.001 |
str |
Sequências de caracteres | "Python" |
bool |
Valores booleanos | True, False |
Variáveis e operadores básicos:
Uma variável é um nome que se refere a um valor. Uma instrução de atribuição cria uma nova variável e dá um valor a ela:
mensagem = 'relatório de python'
n = 17
pi = 3.141592Esse exemplo faz três atribuições. A primeira atribuiu uma string a uma nova variável chamada mensagem; a segunda dá o número inteiro 17 a n; a terceira atribui o valor a pi.
Uma forma comum de representar variáveis por escrito é colocar o nome com uma flecha apontando para o seu valor. Este tipo de número é chamado de diagrama de estado porque mostra o estado no qual cada uma das variáveis está:
Programadores geralmente escolhem nomes objetivos para suas variáveis, isso ajuda a entender o propósito da variável no código.
Os nomes de variáveis podem ter qualquer tamanho e podem incluir letras e números. No entanto, eles não podem começar com um número. Embora seja permitido usar letras maiúsculas, é comum utilizar apenas letras minúsculas para nomear variáveis.
O caractere de sublinhado (_) também é permitido e costuma ser usado para separar palavras em nomes compostos, como em nome_do_usuario ou relatorio_pip.
Caso você tente usar um nome inválido, o Python retornará um erro de sintaxe:
76trombones = 'big parade'
>SyntaxError: invalid syntax
more@ = 1000000
>SyntaxError: invalid syntax
class = 'Advanced Theoretical Zymurgy'
>SyntaxError: invalid syntax76trombonesnão é aceito porque começa com um número.
more@é inválido porque o símbolo@não pode fazer parte de nomes de variáveis.Já
classcausa erro porque é uma palavra reservada da linguagem.
Essas palavras reservadas têm significados especiais no Python e não podem ser usadas como identificadores (nomes de variáveis, funções, etc.).
Aqui estão as palavras-chave da linguagem Python 3:
| Palavra-chave | |||
|---|---|---|---|
and |
del |
from |
None |
as |
elif |
global |
nonlocal |
assert |
else |
if |
not |
break |
except |
import |
or |
class |
False |
in |
pass |
continue |
finally |
is |
raise |
def |
for |
lambda |
return |
True |
try |
while |
with |
yield |
Os operadores +, -, * e / executam a adição, a subtração, a multiplicação e a divisão como mostra os exemplos:
print(20 + 1)
>21
print(22 - 1)
>21
print(3 * 7)
>21
print(42 / 2)
>21.0Listas, tuplas e dicionários:
Estruturas de controle: if, else, elif, for, while:
Funções: definição com def, parâmetros, retorno:
Importação de bibliotecas com import:
Boas práticas: comentários, nomes de variáveis, indentação:
Referências
- blablabla
- alguma coisa muita coisa italico
git --versiongit é uma blablablu